const express=require('express')
const path=require('path')
let app=express()
app.listen(3000,()=>{
    console.log('3000ok');
})



app.get("/index",(req,res)=>{

    // 代码出现了不可预判的错误
    res.sed("index")
})

app.get("/login",(req,res,next)=>{

    // 人为的认为出错了
    // let  a=1;
    let a=1
    if(!a){
        // res.send("服务器出错了")

        // next()  不加参数,那就是简单的下一步
        // next(错误参数)   如果有参数，则会认为是错误参数，那则走向逻辑错误中间件（一定是由4个参数的那个中间件）  
        next("dasdasd") 
        return
    }

    let b=0
    if(!b){
        // res.send("服务器出错了")
        next("asdasdad")
        return
    }

    res.send("login")

  
})

app.get("/register",(req,res)=>{
    res.send("register")
})


app.use((req,res)=>{
    res.send({
        status:404,// 状态码
        msg:"您请求的页面不存在",// 请求的信息
    })
})


// 统一逻辑业务错误处理   通常会在404的后面 （也可以包含404）
app.use((err,req,res,next)=>{
    //   console.log(111,err,222);//错误参数

    // 给前端返回json对象
    // res.send({
    //     status:500,
    //     msg:"服务器出错了"
    // })  

    // 直接给客户端返回页面
    res.sendFile(  path.join(__dirname,"./html/500.html"))
})